package com.css.zfzx.sjcj.modules.drill.Entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.*;
import java.util.Date;
import java.util.Objects;

/**
 * @Description:
 * @Author: Li Helei
 * @CreateDate: 2021/1/18 10:33
 * @Version: 1.0
 **/
@Entity
@Table(name = "qh_y02", schema = "base")
public class QhY02Entity {
    //主键
    private String id;
    //钻孔综合编号
    @Excel(name = "钻孔综合编号", orderNum = "1")
    private String drillSynthesizeCode;
    @Excel(name = "钻孔依托的项目", orderNum = "2")
    private String drillDependProject;
    @Excel(name = "项目完成单位", orderNum = "3")
    private String projectCompleteInstitution;
    @Excel(name = "项目完成时间", orderNum = "4", format = "yyyy-MM-dd HH:mm:ss")
    private String projectCompleteDate;
    @Excel(name = "项目负责人", orderNum = "5")
    private String projectPrincipal;
    @Excel(name = "钻孔勘察单位", orderNum = "6")
    private String drillConstructionInstitution;
    @Excel(name = "钻孔勘察负责人", orderNum = "7")
    private String drillConstructionPrincipal;
    @Excel(name = "勘察施工日期", orderNum = "8", format = "yyyy-MM-dd HH:mm:ss")
    private String constructionStartDate;
    @Excel(name = "勘察报告日期", orderNum = "9", format = "yyyy-MM-dd HH:mm:ss")
    private String constructionReportDate;
    @Excel(name = "钻孔编号", orderNum = "10")
    private String drillCode;
    @Excel(name = "孔口记录坐标X轴", orderNum = "11")
    private Double drillX;
    @Excel(name = "孔口记录坐标Y轴", orderNum = "12")
    private Double drillY;
    @Excel(name = "孔位经度（°）", orderNum = "13")
    private String longitude;
    @Excel(name = "孔位纬度（°）", orderNum = "14")
    private String latitude;
    @Excel(name = "钻孔深度（m）", orderNum = "15")
    private Double drillDepth;
    @Excel(name = "地面高程（m）", orderNum = "16")
    private Double elevation;
    @Excel(name = "稳定水位深度（m）", orderNum = "17")
    private Double stableWaterDepth;
    @Excel(name = "坐标系说明", orderNum = "18")
    private String coordinatesDeclare;
    @Excel(name = "高程系说明", orderNum = "19")
    private String elevationDeclare;
    @Excel(name = "钻孔所在省级行政区", orderNum = "20")
    private String province;
    @Excel(name = "钻孔所在地市级行政区", orderNum = "21")
    private String city;
    @Excel(name = "钻孔所在县级行政区", orderNum = "22")
    private String area;
    @Excel(name = "钻孔所在乡级行政区", orderNum = "23")
    private String village;
    private String dataState;
    private String qualityOpinion;
    private String accessory;
    @Excel(name = "钻孔说明备注", orderNum = "24")
    private String drillRemark;
    private String isValid;
    private String createUser;
    private Date createTime;
    private String updateUser;
    private Date updateTime;
    private String qualityUser;
    private Date qualityTime;

    @Id
    @Column(name = "id")
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    @Basic
    @Column(name = "drill_synthesize_code")
    public String getDrillSynthesizeCode() {
        return drillSynthesizeCode;
    }

    public void setDrillSynthesizeCode(String drillSynthesizeCode) {
        this.drillSynthesizeCode = drillSynthesizeCode;
    }

    @Basic
    @Column(name = "drill_depend_project")
    public String getDrillDependProject() {
        return drillDependProject;
    }

    public void setDrillDependProject(String drillDependProject) {
        this.drillDependProject = drillDependProject;
    }

    @Basic
    @Column(name = "project_complete_institution")
    public String getProjectCompleteInstitution() {
        return projectCompleteInstitution;
    }

    public void setProjectCompleteInstitution(String projectCompleteInstitution) {
        this.projectCompleteInstitution = projectCompleteInstitution;
    }

    @Basic
    @Column(name = "project_complete_date")
//    @JsonFormat(pattern = "yyyy-MM-dd")
//    @DateTimeFormat(pattern = "yyyy-MM-dd")
    public String getProjectCompleteDate() {
        return projectCompleteDate;
    }

    public void setProjectCompleteDate(String projectCompleteDate) {
        this.projectCompleteDate = projectCompleteDate;
    }

    @Basic
    @Column(name = "project_principal")
    public String getProjectPrincipal() {
        return projectPrincipal;
    }

    public void setProjectPrincipal(String projectPrincipal) {
        this.projectPrincipal = projectPrincipal;
    }

    @Basic
    @Column(name = "drill_construction_institution")
    public String getDrillConstructionInstitution() {
        return drillConstructionInstitution;
    }

    public void setDrillConstructionInstitution(String drillConstructionInstitution) {
        this.drillConstructionInstitution = drillConstructionInstitution;
    }

    @Basic
    @Column(name = "drill_construction_principal")
    public String getDrillConstructionPrincipal() {
        return drillConstructionPrincipal;
    }

    public void setDrillConstructionPrincipal(String drillConstructionPrincipal) {
        this.drillConstructionPrincipal = drillConstructionPrincipal;
    }

    @Basic
    @Column(name = "construction_start_date")
//    @JsonFormat(pattern = "yyyy-MM-dd")
//    @DateTimeFormat(pattern = "yyyy-MM-dd")
    public String getConstructionStartDate() {
        return constructionStartDate;
    }

    public void setConstructionStartDate(String constructionStartDate) {
        this.constructionStartDate = constructionStartDate;
    }

    @Basic
    @Column(name = "construction_report_date")
//    @JsonFormat(pattern = "yyyy-MM-dd")
//    @DateTimeFormat(pattern = "yyyy-MM-dd")
    public String getConstructionReportDate() {
        return constructionReportDate;
    }

    public void setConstructionReportDate(String constructionReportDate) {
        this.constructionReportDate = constructionReportDate;
    }

    @Basic
    @Column(name = "drill_code")
    public String getDrillCode() {
        return drillCode;
    }

    public void setDrillCode(String drillCode) {
        this.drillCode = drillCode;
    }

    @Basic
    @Column(name = "drill_x")
    public Double getDrillX() {
        return drillX;
    }

    public void setDrillX(Double drillX) {
        this.drillX = drillX;
    }

    @Basic
    @Column(name = "drill_y")
    public Double getDrillY() {
        return drillY;
    }

    public void setDrillY(Double drillY) {
        this.drillY = drillY;
    }

    @Basic
    @Column(name = "longitude")
    public String getLongitude() {
        return longitude;
    }

    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }

    @Basic
    @Column(name = "latitude")
    public String getLatitude() {
        return latitude;
    }

    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }

    @Basic
    @Column(name = "drill_depth")
    public Double getDrillDepth() {
        return drillDepth;
    }

    public void setDrillDepth(Double drillDepth) {
        this.drillDepth = drillDepth;
    }

    @Basic
    @Column(name = "elevation")
    public Double getElevation() {
        return elevation;
    }

    public void setElevation(Double elevation) {
        this.elevation = elevation;
    }

    @Basic
    @Column(name = "stable_water_depth")
    public Double getStableWaterDepth() {
        return stableWaterDepth;
    }

    public void setStableWaterDepth(Double stableWaterDepth) {
        this.stableWaterDepth = stableWaterDepth;
    }

    @Basic
    @Column(name = "coordinates_declare")
    public String getCoordinatesDeclare() {
        return coordinatesDeclare;
    }

    public void setCoordinatesDeclare(String coordinatesDeclare) {
        this.coordinatesDeclare = coordinatesDeclare;
    }

    @Basic
    @Column(name = "elevation_declare")
    public String getElevationDeclare() {
        return elevationDeclare;
    }

    public void setElevationDeclare(String elevationDeclare) {
        this.elevationDeclare = elevationDeclare;
    }

    @Basic
    @Column(name = "province")
    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    @Basic
    @Column(name = "city")
    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    @Basic
    @Column(name = "area")
    public String getArea() {
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    @Basic
    @Column(name = "village")
    public String getVillage() {
        return village;
    }

    public void setVillage(String village) {
        this.village = village;
    }

    @Basic
    @Column(name = "data_state")
    public String getDataState() {
        return dataState;
    }

    public void setDataState(String dataState) {
        this.dataState = dataState;
    }

    @Basic
    @Column(name = "quality_opinion")
    public String getQualityOpinion() {
        return qualityOpinion;
    }

    public void setQualityOpinion(String qualityOpinion) {
        this.qualityOpinion = qualityOpinion;
    }

    @Basic
    @Column(name = "accessory")
    public String getAccessory() {
        return accessory;
    }

    public void setAccessory(String accessory) {
        this.accessory = accessory;
    }

    @Basic
    @Column(name = "drill_remark")
    public String getDrillRemark() {
        return drillRemark;
    }

    public void setDrillRemark(String drillRemark) {
        this.drillRemark = drillRemark;
    }

    @Basic
    @Column(name = "is_valid")
    public String getIsValid() {
        return isValid;
    }

    public void setIsValid(String isValid) {
        this.isValid = isValid;
    }

    @Basic
    @Column(name = "create_user")
    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    @Basic
    @Column(name = "create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Basic
    @Column(name = "update_user")
    public String getUpdateUser() {
        return updateUser;
    }

    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }

    @Basic
    @Column(name = "update_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    @Basic
    @Column(name = "quality_user")
    public String getQualityUser() {
        return qualityUser;
    }

    public void setQualityUser(String qualityUser) {
        this.qualityUser = qualityUser;
    }

    @Basic
    @Column(name = "quality_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getQualityTime() {
        return qualityTime;
    }

    public void setQualityTime(Date qualityTime) {
        this.qualityTime = qualityTime;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        QhY02Entity that = (QhY02Entity) o;
        return Objects.equals(id, that.id) &&
                Objects.equals(drillSynthesizeCode, that.drillSynthesizeCode) &&
                Objects.equals(drillDependProject, that.drillDependProject) &&
                Objects.equals(projectCompleteInstitution, that.projectCompleteInstitution) &&
                Objects.equals(projectCompleteDate, that.projectCompleteDate) &&
                Objects.equals(projectPrincipal, that.projectPrincipal) &&
                Objects.equals(drillConstructionInstitution, that.drillConstructionInstitution) &&
                Objects.equals(drillConstructionPrincipal, that.drillConstructionPrincipal) &&
                Objects.equals(constructionStartDate, that.constructionStartDate) &&
                Objects.equals(constructionReportDate, that.constructionReportDate) &&
                Objects.equals(drillCode, that.drillCode) &&
                Objects.equals(drillX, that.drillX) &&
                Objects.equals(drillY, that.drillY) &&
                Objects.equals(longitude, that.longitude) &&
                Objects.equals(latitude, that.latitude) &&
                Objects.equals(drillDepth, that.drillDepth) &&
                Objects.equals(elevation, that.elevation) &&
                Objects.equals(stableWaterDepth, that.stableWaterDepth) &&
                Objects.equals(coordinatesDeclare, that.coordinatesDeclare) &&
                Objects.equals(elevationDeclare, that.elevationDeclare) &&
                Objects.equals(province, that.province) &&
                Objects.equals(city, that.city) &&
                Objects.equals(area, that.area) &&
                Objects.equals(village, that.village) &&
                Objects.equals(dataState, that.dataState) &&
                Objects.equals(qualityOpinion, that.qualityOpinion) &&
                Objects.equals(accessory, that.accessory) &&
                Objects.equals(drillRemark, that.drillRemark) &&
                Objects.equals(isValid, that.isValid);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, drillSynthesizeCode, drillDependProject, projectCompleteInstitution, projectCompleteDate, projectPrincipal, drillConstructionInstitution, drillConstructionPrincipal, constructionStartDate, constructionReportDate, drillCode, drillX, drillY, longitude, latitude, drillDepth, elevation, stableWaterDepth, coordinatesDeclare, elevationDeclare, province, city, area, village, dataState, qualityOpinion, accessory, drillRemark, isValid);
    }
}
